cocoonフック調査~cocoon_blogcard_titleの使い方と活用例

タナビーの高梨です。
WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回は内部ブログカードと外部ブログカードのタイトルを同時に変更できるフィルターフック
👉cocoon_blogcard_title
です
フックの概要
フック名 | 発火タイミング |
---|---|
cocoon_blogcard_title | 内部ブログカードまたは外部ブログカード描画時 |
発火条件
内部ブログカードまたは外部ブログカード描画時に、無条件に1回発火します。
使いどころ
内部ブログカード・外部ブログカードで表示されるタイトルを一括変更できます。
公式サイトの例では、長すぎるタイトルを指定文字数でカットする用途が紹介されています。
他にも以下のような場面で活用できそうです。
・タイトルを一律で定型化する(例:「タイトル:●●●●」のフォーマットに統一
・ブランド名や接頭辞を付与する
・検索性・可読性を意識して文字数制限を加える
なお、内部・外部を個別に制御できるフックも用意されています。
・cocoon_internal_blogcard_title
・cocoon_external_blogcard_title
apply_filters呼び出し元のソースコード
lib/blogcard-in.php
$title = apply_filters('cocoon_blogcard_title',$title);
lib/blogcard-out.php
$title = apply_filters('cocoon_blogcard_title',$title);
引数
$title:(string)ブログカードのタイトル
カスタマイズコード例
タイトルが32文字以上の場合に32文字で切り出す例です。
add_filter('cocoon_blogcard_title', function ($title){
if (mb_strlen($title) > 32) {
$title = mb_substr($title, 0, 32).'...';
}
return $title;
});
// 公式サイトから引用
注意点
・このフックは内部・外部の両方のブログカードに同じ処理を適用します。
個別に制御したい場合はcocoon_internal_blogcard_title / cocoon_external_blogcard_title を利用しましょう。
・フックでタイトル文字列を書き換えるため、意図しない文字化けやフォーマット崩れが起こらないよう、マルチバイト文字を扱う場合は mb_strlen / mb_substr を使うのが安全です。
まとめ
・cocoon_blogcard_title は内部・外部ブログカードのタイトルを一括で変更できるフィルターフック。
・文字数制限やフォーマット統一などに活用できる。
・内部用 / 外部用の個別フックもあるので、ケースに応じて使い分けが必要。